package com.bupt.secret.dto;

import com.sun.jna.Structure;
import lombok.Data;

import java.util.Arrays;
import java.util.List;
/**
 * @author ShiShuMin
 * @version v1.0
 * @ClassName BuptConstant
 * @Date: 2024/8/26 9:34
 * @Description: 设备信息
 */
@Data
public class DeviceInfo extends Structure {
    // 设备生产厂商名称
    public byte[] issuerName = new byte[40];
    // 设备型号
    public byte[] deviceName = new byte[16];
    // 设备编号
    public byte[] deviceSerial = new byte[16];
    // 密码设备内部软件的版本号
    public int deviceVersion;
    // 密码设备支持的接口规范版本号
    public int standardVersion;
    // 前４字节表示支持的算法，后４字节表示算法的最大模长
    public int[] asymAlgAbility = new int[2];
    // 所有支持的对称算法
    public int symAlgAbility;
    // 所有支持的杂凑算法
    public int hashAlgAbility;
    // 支持的最大文件存储空间（单位字节）
    public int bufferSize;

    @Override
    protected List<String> getFieldOrder() {
        return Arrays.asList(
                "issuerName", "deviceName", "deviceSerial",
                "deviceVersion", "standardVersion", "asymAlgAbility",
                "symAlgAbility", "hashAlgAbility", "bufferSize"
        );
    }
}
